#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
const int P=1e9+7;
class segtree{
  private:
    int n;
    vector<pii> B;
    vector<int> M,T;
  public:
    inline void pushup(int u){
      M[u]=min(M[u<<1],M[u<<1|1]);
    }
    inline void pushdown(int u){
      if(T[u]){
        M[u<<1]+=T[u],M[u<<1|1]+=T[u];
        T[u<<1]+=T[u],T[u<<1|1]+=T[u],T[u]=0;
      }
    }
    segtree(vector<int> &a){
      n=a.size(),B.resize(n<<2),M.resize(n<<2),T.resize(n<<2);
      function<void(int,int,int)> build=[&](int u,int l,int r){
        B[u]=make_pair(l,r); if(l==r){M[u]=a[l]; return;}
        int m=l+r>>1;
        build(u<<1,l,m),build(u<<1|1,m+1,r);
        pushup(u);
      };
      build(1,0,n-1);
    }
    void update(int u,int l,int r,int d){
      if(B[u].first>r||B[u].second<l)return;
      if(l<=B[u].first&&B[u].second<=r){
        T[u]+=d,M[u]+=d; return;
      }
      pushdown(u);
      update(u<<1,l,r,d),update(u<<1|1,l,r,d);
      pushup(u);
    }
    int queryL(int u){
      if(B[u].first==B[u].second)return M[u];
      pushdown(u);
      int m=B[u].first+B[u].second>>1;
      return queryL(u<<1|(n-1>m));
    }
    inline bool pd(){
      return M[1]>=0&&!queryL(1);
    }
};
inline bool pd(int n,string &s){
  vector<int> a(n),p(n);
  for(int i=0;i<n;i++)
    a[i]=(s[i]=='('?1:-1);
  partial_sum(a.begin(),a.end(),p.begin());
  segtree t(p);
  if(t.pd())return true;
  for(int i=0;i<n;i++){
    const int L1=min(i,n-i-1);
    for(int j=0;j<=L1;j++){
      t.update(1,i-j,n-1,-2*a[i-j]);
      if(j)t.update(1,i+j,n-1,-2*a[i+j]);
      if(t.pd())return true;
    }
    for(int j=L1;~j;j--){
      t.update(1,i-j,n-1,2*a[i-j]);
      if(j)t.update(1,i+j,n-1,2*a[i+j]);
    }
    if(i){
      const int L2=min(i,n-i);
      for(int j=1;j<=L2;j++){
        t.update(1,i-j,n-1,-2*a[i-j]);
        t.update(1,i+j-1,n-1,-2*a[i+j-1]);
        if(t.pd())return true;
      }
      for(int j=L2;j;j--){
        t.update(1,i-j,n-1,2*a[i-j]);
        t.update(1,i+j-1,n-1,2*a[i+j-1]);
      }
    }
  }
  return false;
}
int main(){
  freopen("bracket.in","w",stdout);
  mt19937 g(time(0));
  int n=100; cout<<n<<endl;
  set<int> p;
  while(p.size()<12)p.emplace(g()%100);
  for(int i=0;i<n;i++){
    if(p.find(i)!=p.end())cout<<'x';
    else cout<<'(';
  }
  cout<<endl;
  return 0;
}